#ifndef __EPSILON__ERRORS_H__
#define __EPSILON__ERRORS_H__

//#include "system.h"
#include "dll_symbols.h"

enum eErrorCode {
  EPSILON_ERROR_INVALID_DATA,

  EPSILON_ERROR_INVALID_FILE_MODE,           ///< Invalid file mode passed to eFile.
  EPSILON_ERROR_INVALID_FILE_SEEK_OPERATION, ///< Invalid seek operation passed to eFile::seek (...)
  EPSILON_ERROR_INVALID_FILE_READ_BUFFER,    ///< Passed a bad ptr. to eFile::read (...).

  EPSILON_ERROR_INVALID_WINDOW_FLAG,         ///< eWindowParameters::flag is invalid.
  EPSILON_ERROR_INVALID_WINDOW_PARAMETERS,   ///< Invalid window parameters
  EPSILON_ERROR_INVALID_WINDOW_HANDLE,       ///< Invalid window handle
  EPSILON_ERROR_CANNOT_CREATE_WINDOW,        ///< Unable to create window
  
  EPSILON_ERROR_FAIL_REGISTER_WINDOW_CLASS,  ///< Win32 Specific: Cannot register window class

  EPSILON_NO_ERROR
};

/// Public interface to eDebug::GetLastError
EPSILON_API const eErrorCode& eGetLastError (void);

void       eSetLastError   (eErrorCode err);
eErrorCode eSetLastErrorEx (eErrorCode err);

#endif /* __EPSILON__ERRORS_H__ */